package QuestionDaily;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;

public class closeStrings_1657 {
    /**
     * 给你两个字符串，word1 和 word2 。如果 word1 和 word2 接近 ，就返回 true ；否则，返回 false 。
     * 参考leetcode
     */
    public boolean closeStrings(String word1, String word2) {
        /**
         * 想法是，这两步操作,只要最后
         * 字符串的长度不变，
         * 字符种类不变,
         * 字符数量的种类相同，
         * 可能就是接近的
         */
        if(word1.length()!=word2.length())
            return false;
        int []arr1=new int[26];
        int []arr2=new int[26];
        HashSet<Integer>set1=new HashSet<>();
        List<Integer>list =new ArrayList<>();
        for(int i=0;i<word1.length();i++){
            int char1=word1.charAt(i);
            set1.add(char1);
            arr1[char1-97]++;
        }
        for( int i:arr1)
            if(i!=0)
                list.add(i);
        for(int i=0;i<word1.length();i++){
            int char2=word2.charAt(i);
            set1.remove(char2);
            arr2[char2-97]++;
        }
        for( int i:arr2)
            if(i!=0)
                list.remove(new Integer(i)); //根据数值删除
        return set1.size() == 0 && list.size()==0;
    }
}
